1
設計彈性系統:表格介面
AI020Lesson 4
00:00

彈性系統的基礎,在於定義一個嚴謹的內部 合約 或介面,要求物件必須遵循。在此情境下,我們定義一個 表格介面 ,其中每個單元格物件都保證存在三個特定方法: minWidth()minHeight()以及 draw(width, height)

1. 介面合約

透過標準化這些方法,佈局邏輯可以在不瞭解個別單元格內部資料類型的情況下,計算出整體行列尺寸。這是一個典型的 基於介面的多型性

2. TextCell 的實作

這個 TextCell 建構函數會將原始輸入以換行符分割成逐行陣列。這將複雜度從渲染階段轉移到建立階段。

this.text = text.split("\n");

3. 確定性繪製

這個 draw(width, height) 方法確保每個單元格的輸出都能透過 repeat() 輔助函數進行完美補齊。無論內容長度如何,都能維持垂直與水平對齊。

名稱乞力馬扎羅高度5895欄位透過計算出的 minWidth() 對齊

$$\text{填補} = \text{寬度} - \text{行長度}$$

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>